﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.IO;

namespace EasyTrader.DataSet
{
    public class BarDataTable : EasyTrader.DataSet.ETDataTable
    {
        private bool m_Show = true;
        public bool Show
        {
            get { return m_Show; }
            set { m_Show = value; }
        }

        public BarDataTable(string a_Name)
            : base(a_Name)
        {
            Init();
        }

        private string m_CodeName = "";
        public string CodeName
        {
            get { return m_CodeName; }
            set { m_CodeName = value; }
        }
        // 여기서 행을 추가해 준다.
        public void Init()
        {
            AddColumn("날짜");
            AddColumn("시각");
            AddColumn("시가");
            AddColumn("고가");
            AddColumn("저가");
            AddColumn("종가");
        }

        public bool ReadFromXml(object a_Date, object a_Code)
        {
            string fileName = a_Date.ToString() + "_";
            fileName += a_Code.ToString();

            string path = Directory.GetCurrentDirectory();
            path += "\\OptData\\" + fileName;

            // 파일이 없으면 그냥 나온다.
            if (File.Exists(path) == false)
            {
                return false;
            }
            // 기존의 데이터를 모두 지웁니다.
            this.Clear();
            // 새로운 데이터를 읽어 온다.
            ReadXml(path);

            return true;
        }

        public bool IsDataFileExist(object a_Date, object a_Code)
        {
            string fileName = a_Date.ToString() + "_";
            fileName += a_Code.ToString();

            string path = Directory.GetCurrentDirectory();
            path += "\\OptData\\" + fileName;

            // 파일이 없으면 그냥 나온다.
            if (File.Exists(path) == false)
            {
                return false;
            }
            

            return true;
        }

        public int GetFileCount()
        {
            string path = Directory.GetCurrentDirectory();
            path += "\\OptData";

            System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(path);
            int count = dir.GetFiles().Length;

            return count;
        }

        public bool SaveTableToXml(object a_Date, object a_Code)
        {
            if (GetRowCount() == 0)
                return false;

            if (Convert.ToInt32(a_Date) == 0)
                return false;

            string curDate = a_Date.ToString();

            string fileName = Directory.GetCurrentDirectory();
            string dirName = fileName + "\\OptData";
            bool exist = Directory.Exists(dirName);
            if (exist == false)
            {
                string msg = dirName + GlobalVar.DirWarnMsg;
                System.Windows.Forms.MessageBox.Show(msg);
                return false;
            }
            fileName += "\\OptData\\";
            fileName += a_Date.ToString() + "_";
            fileName += a_Code.ToString();
            // 기존 파일이 있으면 지워준다.
            if (File.Exists(fileName))
            {
                File.Delete(fileName);
            }
            WriteXml(fileName);

            return true;
        }
    }
}
